package huffmann;

public class OrdenaLista {
	public Objeto execute(Objeto lista) {
		Objeto aux1, aux2, anterior;
		int count = 1;

		while(count > 0){
			count = 0;

			aux1 = lista; 
			aux2 = aux1.getNext();
			if(aux1.getProbabilidade() > aux2.getProbabilidade()){
				aux1.setNext(aux2.getNext());
				aux2.setNext(aux1);
				
				lista = aux2;
				count++;
			}

			anterior = lista;
			aux1 = anterior.getNext();
			aux2 = aux1.getNext();
			while(aux2 != null){
				if(aux1.getProbabilidade() > aux2.getProbabilidade()){
					aux1.setNext(aux2.getNext());
					aux2.setNext(aux1);
					anterior.setNext(aux2);
					
					aux1 = anterior.getNext();
					aux2 = aux1.getNext();
					
					count++;
				}
				anterior = anterior.getNext();
				aux1 = aux1.getNext();
				aux2 = aux2.getNext();
			}
		}
		return lista;
	}
}
